/********************************************************************* * * Copyright (C) 2002 Andrew Khan * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ***************************************************************************/ package jxl.format; /** * Enumeration class which contains the various colours available within * the standard Excel colour palette * */ public /*final*/ class Colour { /** * The internal numerical representation of the colour */ private int value; /** * The default RGB value */ private RGB rgb; /** * The display string for the colour. Used when presenting the * format information */ private String string; /** * The list of internal colours */ private static Colour[] colours = new Colour[0]; /** * Private constructor * * @param val * @param s the display string * @param r the default red value * @param g the default green value * @param b the default blue value */ protected Colour(int val, String s, int r, int g, int b) { value = val; string = s; rgb = new RGB(r,g,b); Colour[] oldcols = colours; colours = new Colour[oldcols.length + 1]; System.arraycopy(oldcols, 0, colours, 0, oldcols.length); colours[oldcols.length] = this; } /** * Gets the value of this colour. This is the value that is written to * the generated Excel file * * @return the binary value */ public int getValue() { return value; } /** * Gets the string description for display purposes * * @return the string description */ public String getDescription() { return string; } /** * Gets the default red content of this colour. Used when writing the * default colour palette * * @return the red content of this colour * @deprecated use getDefaultRGB instead */ public int getDefaultRed() { return rgb.getRed(); } /** * Gets the default green content of this colour. Used when writing the * default colour palette * * @return the green content of this colour * @deprecated use getDefaultRGB instead */ public int getDefaultGreen() { return rgb.getGreen(); } /** * Gets the default blue content of this colour. Used when writing the * default colour palette * * @return the blue content of this colour * @deprecated use getDefaultRGB instead */ public int getDefaultBlue() { return rgb.getBlue(); } /** * Returns the default RGB of the colour * * @return the default RGB */ public RGB getDefaultRGB() { return rgb; } /** * Gets the internal colour from the value * * @param val * @return the colour with that value */ public static Colour getInternalColour(int val) { for (int i = 0 ; i < colours.length ; i++) { if (colours[i].getValue() == val) { return colours[i]; } } return UNKNOWN; } /** * Returns all available colours - used when generating the default palette * * @return all available colours */ public static Colour[] getAllColours() { return colours; } // Major colours public final static Colour UNKNOWN = new Colour(0x7fee, "unknown", 0, 0, 0); public final static Colour BLACK = new Colour(0x7fff, "black", 0, 0, 0); public final static Colour WHITE = new Colour(0x9, "white", 0xff, 0xff, 0xff); public final static Colour DEFAULT_BACKGROUND1 = new Colour(0x0, "default background", 0xff, 0xff, 0xff); public final static Colour DEFAULT_BACKGROUND = new Colour(0xc0, "default background", 0xff, 0xff, 0xff); public final static Colour PALETTE_BLACK = new Colour(0x8, "black", 0x1, 0, 0); // the first item in the colour palette // Other colours public final static Colour RED = new Colour(0xa, "red",0xff,0,0); public final static Colour BRIGHT_GREEN = new Colour(0xb, "bright green",0,0xff,0); public final static Colour BLUE = new Colour(0xc, "blue",0,0,0xff); public final static Colour YELLOW = new Colour(0xd, "yellow",0xff,0xff,0); public final static Colour PINK = new Colour(0xe, "pink",0xff,0,0xff); public final static Colour TURQUOISE = new Colour(0xf, "turquoise",0,0xff,0xff); public final static Colour DARK_RED = new Colour(0x10, "dark red",0x80,0,0); public final static Colour GREEN = new Colour(0x11, "green",0,0x80,0); public final static Colour DARK_BLUE = new Colour(0x12, "dark blue",0,0,0x80); public final static Colour DARK_YELLOW = new Colour(0x13, "dark yellow",0x80,0x80,0); public final static Colour VIOLET = new Colour(0x14, "violet",0x80,0x80,0); public final static Colour TEAL = new Colour(0x15, "teal",0,0x80,0x80); public final static Colour GREY_25_PERCENT = new Colour(0x16 ,"grey 25%",0xc0,0xc0,0xc0); public final static Colour GREY_50_PERCENT = new Colour(0x17, "grey 50%",0x80,0x80,0x80); public final static Colour PERIWINKLE = new Colour(0x18, "periwinkle%",0x99, 0x99, 0xff); public final static Colour PLUM2 = new Colour(0x19, "plum",0x99, 0x33, 0x66); public final static Colour IVORY = new Colour(0x1a, "ivory",0xff, 0xff, 0xcc); public final static Colour LIGHT_TURQUOISE2= new Colour(0x1b, "light turquoise",0xcc, 0xff, 0xff); public final static Colour DARK_PURPLE = new Colour(0x1c, "dark purple",0x66, 0x0, 0x66); public final static Colour CORAL = new Colour(0x1d, "coral",0xff, 0x80, 0x80); public final static Colour OCEAN_BLUE = new Colour(0x1e, "ocean blue",0x0, 0x66, 0xcc); public final static Colour ICE_BLUE = new Colour(0x1f, "ice blue",0xcc, 0xcc, 0xff); public final static Colour DARK_BLUE2 = new Colour(0x20, "dark blue",0,0,0x80); public final static Colour PINK2 = new Colour(0x21, "pink",0xff,0,0xff); public final static Colour YELLOW2 = new Colour(0x22, "yellow",0xff,0xff,0x0); public final static Colour TURQOISE2 = new Colour(0x23, "turqoise",0x0,0xff,0xff); public final static Colour VIOLET2 = new Colour(0x24, "violet",0x80,0x0,0x80); public final static Colour DARK_RED2 = new Colour(0x25, "dark red",0x80,0x0,0x0); public final static Colour TEAL2 = new Colour(0x26, "teal",0x0,0x80,0x80); public final static Colour BLUE2 = new Colour(0x27, "blue",0x0,0x0,0xff); public final static Colour SKY_BLUE = new Colour(0x28, "sky blue",0,0xcc,0xff); public final static Colour LIGHT_TURQUOISE = new Colour(0x29, "light turquoise",0xcc,0xff,0xff); public final static Colour LIGHT_GREEN = new Colour(0x2a, "light green",0xcc,0xff,0xcc); public final static Colour VERY_LIGHT_YELLOW = new Colour(0x2b, "very light yellow",0xff,0xff,0x99); public final static Colour PALE_BLUE = new Colour(0x2c, "pale blue",0x99,0xcc,0xff); public final static Colour ROSE = new Colour(0x2d, "rose",0xff,0x99,0xcc); public final static Colour LAVENDER = new Colour(0x2e, "lavender",0xcc,0x99,0xff); public final static Colour TAN = new Colour(0x2f, "tan",0xff,0xcc,0x99); public final static Colour LIGHT_BLUE = new Colour(0x30, "light blue", 0x33, 0x66, 0xff); public final static Colour AQUA = new Colour(0x31, "aqua",0x33,0xcc,0xcc); public final static Colour LIME = new Colour(0x32, "lime",0x99,0xcc,0); public final static Colour GOLD = new Colour(0x33, "gold",0xff,0xcc,0); public final static Colour LIGHT_ORANGE = new Colour(0x34, "light orange",0xff,0x99,0); public final static Colour ORANGE = new Colour(0x35, "orange",0xff,0x66,0); public final static Colour BLUE_GREY = new Colour(0x36, "blue grey",0x66,0x66,0xcc); public final static Colour GREY_40_PERCENT = new Colour(0x37, "grey 40%",0x96,0x96,0x96); public final static Colour DARK_TEAL = new Colour(0x38, "dark teal",0,0x33,0x66); public final static Colour SEA_GREEN = new Colour(0x39, "sea green",0x33,0x99,0x66); public final static Colour DARK_GREEN = new Colour(0x3a, "dark green",0,0x33,0); public final static Colour OLIVE_GREEN = new Colour(0x3b, "olive green",0x33,0x33,0); public final static Colour BROWN = new Colour(0x3c, "brown",0x99,0x33,0); public final static Colour PLUM = new Colour(0x3d, "plum",0x99,0x33,0x66); public final static Colour INDIGO = new Colour(0x3e, "indigo",0x33,0x33,0x99); public final static Colour GREY_80_PERCENT = new Colour(0x3f, "grey 80%",0x33,0x33,0x33); public final static Colour AUTOMATIC = new Colour(0x40, "automatic", 0xff, 0xff, 0xff); // Colours added for backwards compatibility public final static Colour GRAY_80 = GREY_80_PERCENT; public final static Colour GRAY_50 = GREY_50_PERCENT; public final static Colour GRAY_25 = GREY_25_PERCENT; }